The subject of the present invention is a process for optimizing the transfer of data between at least one client and at least one server in a computer system. The computer system may or may not be heterogeneous, and may or may not be distributed.
By definition, an application is said to be designed based on a xe2x80x9cclient/serverxe2x80x9d architecture when it is composed of two independent programs that cooperate with one another to perform the same operation, each running in a specific environment (machine, operating system), a programming interface using a language constituted by commands making it possible to control their dialog.
Also, in a client/server architecture, clients and servers coexist and dialog in the form of requests. A client application generally means a program that receives the data sent by a user and submits this data in request form to another program associated with a server. In other words, a request passes from a client application to a management system that offers the service requested. This service offers a processing service corresponding to the request sent. In general, the processing includes a read access or an update to a base known to one skilled in the art.
The client/server mode has the advantage of allowing a user (for example of a simple microcomputer) called a client to consign part of his job or his operations to be performed to a server. Thus, the client has access to a computing capacity much greater than that of his own microcomputer. Likewise, a client application can address a specialized server and efficiently outsource an operation, the server having optimal operating conditions and capabilities because of its specialization.
In this computer system, a management system particularly well adapted to the invention can be a system for managing the machines of a computer system such as OPENMASTER (a registered trademark of the company BULL S.A.).
This system uses standardized CMIS (Common Management Information Services), known to one skilled in the art. This management system may be likened to a set of services that interact with one another to provide a virtual representation of the real world that is the computer system. It is a virtual representation that an administrator manipulates (supervision, action) in order to manage the real world. The virtual representation deals with virtual objects of the real world and constitutes an object model. This virtual representation is embodied by a containment tree. The invention is not limited to this type of server, and is applicable to any request server.
In this OPENMASTER type of system, the transfer of data takes place between a client machine and at least one machine of the request server type, called a management system. The term xe2x80x9cmanagementxe2x80x9d will be used in accordance with the AFNOR (French Association for Standardization) translation of the French term xe2x80x9cgestion.xe2x80x9d The machines are connected to one another through a LAN (Local Area Network), WAN (Wide Area Network), Lot or Internet. This system may or may not be distributed, and may or may not be heterogeneous.
Management systems can maintain hierarchical relationships. Thus one management system may be subordinate to another management system.
A distributed system is computer system environment that runs on at least two identical or different operating systems. A machine is associated with an operating system. A machine comprises at least one physical resource (for example networks, concentrators, segments, etc.) or logical resource (for example a database, etc.). A heterogeneous computer system generally contains a variety of management protocols. In this system, each machine is associated with at least one management protocol.
The client application is included in a client machine that can be, for example, a workstation, a personal computer, etc. Hereinafter, the client will be represented by a workstation.
The tree comprises in its nodes all of the objects managed by the management system. By definition, a managed object is an abstract view, defined for the purpose of managing a logical or physical resource of a system. An attribute is a characteristic of a managed object that has a named type and a value. The value of an attribute of an object can be consulted or modified by a request addressed to the object.
In a computer system of the OPENMASTER type, at least one agent is generally located in a machine of the computer system. An agent processes requests that are addressed to it. A software agent manages and updates data in the machine in which it is located in another containment tree. Each agent can support a protocol such as the protocol SNMP (Simple Network Management Protocol), the protocol CMIP (Common Management Information Protocol), the protocol DSAC (Distributed Systems Administration and Control) or other protocols.
The management system also comprises several agents, equal in number to the management protocols existing in the computer system. The agents included in the management system are generally named xe2x80x9cintegrating agentsxe2x80x9d in that they are integrated into the management system. The agents and the integrating agents of the management system(s) coexist and communicate so as to mask the heterogeneity of the network.
In a computer architecture of the client/server type, the values or the states of objects that are managed and updated in the management system are transmitted to the client applications. Thus, a client application included in this machine can be informed of the changes in the values or states of these objects, display them, and perform actions.
Between (one or) several client applications and a management system, there is a flow of information constituted by values and states of objects managed by the management system. The client application must be updated with these object states and values in order to react quickly and efficiently. However, in the case where the client application uses a large number of values and states of objects of the management system, the flow of data between the management system and the client application can be very high and can not only lead to an overflow in the client application, but can also saturate the communication system between the client applications and the management system.
A first solution consists in that the management system, for each object requested by a client application, sends this client the state or the value of the object. Thus, when the management system detects a change in the state or value of an object, it sends this state or value of the object to the client application(s) interested in this object. The big problem is that if the number of objects is very high, the flow of data between the management system and the client application can also be very high and runs the risk of overflowing the client application and the communication system between the management system and the client applications.
A second solution consists in that the management system sends the client application not just one object value or state, but the values or states corresponding to a set of objects. The management system sends these values or states at regular intervals, for example every n seconds, and when at least one object has changed its state or value. This solution does not take into account the activity level of the client application. Thus, a client application that is saturated can receive a set of object values every n seconds without being able to process them.
A third solution consists in that the client application sends requests on each of the objects at regular intervals, for example every n seconds, in order to learn the state of the objects managed by the management system. The problem is that if the number of objects is high, the number of requests to the management system will be high, and consequently the flow of data between the client application and the management system will be high. Another problem is that this solution does not take into account the overflow of the client application. In fact, a large number of requests can be sent without allowing for the requests that are currently being processed in the client application.
A first object is to be able to efficiently transfer to the clients the changes in the values or states of objects managed in a management system while taking care not to overflow the client application and the communication system between the management system and the client application.
A second object is to provide the system with a simple and general communication process between the management system and the client application.
To this end, the subject of the invention is a process for optimizing the flow of data between at least one client application and at least one request management system that includes at least one object having states and values capable of being modified, said client application sending at least two requests for interrogating states or values of objects included in a management system, the communication between a client application and a management system taking place through a communication system characterized in that
on initialization, the management system transmits to the client application, at the request of the client application, a set of objects that includes all or some of the objects included in the management system,
and in response to an interrogation request from the client application, the management system transmits to the client application any modifications that include the states and/or values of at least one object of this set that have been modified,
another interrogation request from the client application being transmitted after a time lapse, giving the client application at least the ability to finish processing the response to the first request.